<div class="btn-group w-100" ngbDropdown role="group" [popperOptions]="popperOptions">
  <button class="btn btn-sm" id="dropdown{{title}}" ngbDropdownToggle [ngClass]="createdDateBefore || createdDateAfter ? 'btn-primary' : 'btn-outline-primary'" [disabled]="disabled">
    <i-bs width="1em" height="1em" name="calendar-event-fill"></i-bs>
    <div class="d-none d-sm-inline">&nbsp;{{title}}</div>
    <pngx-clearable-badge [selected]="isActive" (cleared)="reset()"></pngx-clearable-badge><span class="visually-hidden">selected</span>
  </button>
  <div class="dropdown-menu date-dropdown shadow p-2" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}">
    <div class="row d-flex">
      <div class="col border-end">
        <div class="list-group list-group-flush">
          <h6 class="dropdown-header border-bottom" i18n>Created</h6>
          @for (rd of relativeDates; track rd) {
            <button class="list-group-item small list-goup list-group-item-action d-flex p-2" role="menuitem" (click)="setCreatedRelativeDate(rd.id)">
              <div class="selected-icon">
                @if (createdRelativeDate === rd.id) {
                  <i-bs width="1em" height="1em" name="check"></i-bs>
                }
              </div>
              <div class="d-flex justify-content-between w-100 align-items-center ps-2">
                <div class="pe-4">
                  {{rd.name}}
                </div>
                <div class="text-muted small pe-2">
                  <span class="small">
                    {{ rd.date | customDate:'mediumDate' }} &ndash; <ng-container i18n>now</ng-container>
                  </span>
                </div>
              </div>
            </button>
          }
          <div class="list-group-item d-flex p-2" role="menuitem">

            <div class="selected-icon">
              @if (createdDateAfter) {
                <a class="text-light focus-variants" href="javascript:void(0)" (click)="clearCreatedAfter()">
                  <i-bs width="1em" height="1em" name="check" class="variant-unfocused"></i-bs>
                  <i-bs width="1em" height="1em" name="x" class="variant-focused text-primary"></i-bs>
                </a>
              }
            </div>
            <div class="input-group input-group-sm small ps-1 pe-2">
              <span class="input-group-text w-25 small text-muted" i18n>After</span>
              <input class="form-control small" [placeholder]="datePlaceHolder" (dateSelect)="onChangeDebounce()" (change)="onChangeDebounce()" (keypress)="onKeyPress($event)"
                maxlength="10" [(ngModel)]="createdDateAfter" ngbDatepicker #createdDateAfterPicker="ngbDatepicker">
              <button class="btn btn-outline-secondary" (click)="createdDateAfterPicker.toggle()" type="button">
                <i-bs width="1em" height="1em" name="calendar"></i-bs>
              </button>
            </div>

          </div>
          <div class="list-group-item d-flex p-2" role="menuitem">

            <div class="selected-icon">
              @if (createdDateBefore) {
                <a class="text-light focus-variants" href="javascript:void(0)" (click)="clearCreatedBefore()">
                  <i-bs width="1em" height="1em" name="check" class="variant-unfocused"></i-bs>
                  <i-bs width="1em" height="1em" name="x" class="variant-focused text-primary"></i-bs>
                </a>
              }
            </div>
            <div class="input-group input-group-sm small ps-1 pe-2">
              <span class="input-group-text w-25 small text-muted" i18n>Before</span>
              <input class="form-control small" [placeholder]="datePlaceHolder" (dateSelect)="onChangeDebounce()" (change)="onChangeDebounce()" (keypress)="onKeyPress($event)"
                maxlength="10" [(ngModel)]="createdDateBefore" ngbDatepicker #createdDateBeforePicker="ngbDatepicker">
              <button class="btn btn-outline-secondary" (click)="createdDateBeforePicker.toggle()" type="button">
                <i-bs width="1em" height="1em" name="calendar"></i-bs>
              </button>
            </div>

          </div>
        </div>
      </div>
      <div class="col">
        <h6 class="dropdown-header border-bottom" i18n>Added</h6>
        <div class="list-group list-group-flush">
          @for (rd of relativeDates; track rd) {
            <button class="list-group-item small list-goup list-group-item-action d-flex p-2" role="menuitem" (click)="setAddedRelativeDate(rd.id)">
              <div class="selected-icon">
                @if (addedRelativeDate === rd.id) {
                  <i-bs width="1em" height="1em" name="check"></i-bs>
                }
              </div>
              <div class="d-flex justify-content-between w-100 align-items-center ps-2">
                <div class="pe-4">
                  {{rd.name}}
                </div>
                <div class="text-muted small pe-2">
                  <span class="small">
                    {{ rd.date | customDate:'mediumDate' }} &ndash; <ng-container i18n>now</ng-container>
                  </span>
                </div>
              </div>
            </button>
          }
          <div class="list-group-item d-flex p-2" role="menuitem">

            <div class="selected-icon">
              @if (addedDateAfter) {
                <a class="text-light focus-variants" href="javascript:void(0)" (click)="clearAddedAfter()">
                  <i-bs width="1em" height="1em" name="check" class="variant-unfocused"></i-bs>
                  <i-bs width="1em" height="1em" name="x" class="variant-focused text-primary"></i-bs>
                </a>
              }
            </div>
            <div class="input-group input-group-sm small ps-1 pe-2">
              <span class="input-group-text w-25 small text-muted" i18n>After</span>
              <input class="form-control small" [placeholder]="datePlaceHolder" (dateSelect)="onChangeDebounce()" (change)="onChangeDebounce()" (keypress)="onKeyPress($event)"
                maxlength="10" [(ngModel)]="addedDateAfter" ngbDatepicker #addedDateAfterPicker="ngbDatepicker">
              <button class="btn btn-outline-secondary" (click)="addedDateAfterPicker.toggle()" type="button">
                <i-bs width="1em" height="1em" name="calendar"></i-bs>
              </button>
            </div>

          </div>
          <div class="list-group-item d-flex p-2" role="menuitem">

            <div class="selected-icon">
              @if (addedDateBefore) {
                <a class="text-light focus-variants" href="javascript:void(0)" (click)="clearAddedBefore()">
                  <i-bs width="1em" height="1em" name="check" class="variant-unfocused"></i-bs>
                  <i-bs width="1em" height="1em" name="x" class="variant-focused text-primary"></i-bs>
                </a>
              }
            </div>
            <div class="input-group input-group-sm small ps-1 pe-2">
              <span class="input-group-text w-25 small text-muted" i18n>Before</span>
              <input class="form-control small" [placeholder]="datePlaceHolder" (dateSelect)="onChangeDebounce()" (change)="onChangeDebounce()" (keypress)="onKeyPress($event)"
                maxlength="10" [(ngModel)]="addedDateBefore" ngbDatepicker #addedDateBeforePicker="ngbDatepicker">
              <button class="btn btn-outline-secondary" (click)="addedDateBeforePicker.toggle()" type="button">
                <i-bs width="1em" height="1em" name="calendar"></i-bs>
              </button>
            </div>

          </div>
        </div>
      </div>
    </div>
  </div>
</div>
